package cn.xeblog.server.builder;

import cn.xeblog.commons.entity.Response;
import cn.xeblog.commons.entity.User;
import cn.xeblog.commons.entity.react.result.ReactResult;
import cn.xeblog.commons.enums.MessageType;

/**
 * 响应构建器-构建者模式
 *
 * @author anlingyi
 * @date 2020/8/17
 */
public class ResponseBuilder {

    public static Response react(ReactResult result) {
        return build(null, result, MessageType.REACT);
    }

    /**
     * 构建系统消息
     *
     * @param msg 消息
     * @return 系统消息响应对象
     */
    public static Response system(String msg) {
        return build(null, msg, MessageType.SYSTEM);
    }

    /**
     * 构建响应对象
     *
     * @param user        用户信息
     * @param msg         消息体
     * @param messageType 消息类型
     * @return 响应对象
     */
    public static Response build(User user, Object msg, MessageType messageType) {
        return new Response(user, msg, messageType);
    }

}
